8. Se dau planuri de invatamant la ciclul de licenta in format Excel xlsx pe o generatie de studenti 2023 - 2027. Asta inseamna ca in anul 2023 ei au inceput anul 1 de studiu si in anul 2027 vor finaliza anul 4 de studii. Planurile contin disciplinele cu o multime de detalii de genul: - cod disciplina - nr credite - forma de evaluare - nr ore curs - nr ore laborator In fisiere Excel gasiti cateva modele de planuri de invatamant. Planurile sunt structurate pe 4 coloane reprezentand semestrele a 2 ani de studiu. Sa se scrie o aplicatie cu urmatoarele functionalitati: - sa extraga toate disciplinele cu toate caracteristicile lor dintr-un fisierul Excel dat ca intrare in aplicatie - pentru extragere se va scrie un algoritm care va itera coloanele si va identifica codul si respectiv numele disciplinei - sa genereze un fisier Excel cu disciplinele si caracteristicile lor - sa genereze un fisier CSV cu disciplinele si caracteristicile lor Pentru a citi si genera fișiere Excel (.xlsx) într-o aplicație de consolă C#, poți folosi librăria ClosedXML, care simplifică interacțiunea cu fișierele Excel fără a necesita instalarea Microsoft Excel pe calculator. 1. Instalează ClosedXML În Visual Studio, deschide Package Manager Console și rulează comanda: Install-Package ClosedXML Alternativ, poți adăuga pachetul din NuGet Package Manager căutând ClosedXML. 2. Exemple de cod După instalare, poți folosi codul de mai jos pentru a citi date dintr-un fișier .xlsx. using System; using ClosedXML.Excel; class Program { static void Main(string[] args) { // Specifică calea către fișierul Excel string filePath = @"C:\calea\catre\fisier.xlsx"; // Deschide fișierul Excel using (var workbook = new XLWorkbook(filePath)) { // Selectează foaia de lucru (sheet-ul) dorită var worksheet = workbook.Worksheet(1); // sau numele foii: workbook.Worksheet("Sheet1") // Iterează prin rândurile și coloanele foii de lucru foreach (var row in worksheet.RowsUsed()) { foreach (var cell in row.CellsUsed()) { Console.Write(cell.GetValue() + "\t"); } Console.WriteLine(); } } } } Deschiderea fișierului: new XLWorkbook(filePath) deschide fișierul .xlsx specificat. Selectarea Foii de Lucru: workbook.Worksheet(1) alege prima foaie de lucru din fișier. Poți folosi și numele foii, de exemplu: workbook.Worksheet("Sheet1"). Iterarea prin celule: Folosim RowsUsed() pentru a itera doar prin rândurile folosite, iar CellsUsed() pentru a obține doar celulele cu date. Observații ClosedXML gestionează automat închiderea fișierului și eliberarea resurselor după utilizare datorită using statement-ului. Referință pentru valori: cell.GetValue() extrage valoarea din celulă și o converteste la tipul specificat (aici string). Acest cod ar trebui să afișeze datele din fișierul Excel în consolă, fiecare celulă fiind separată de un tab pentru lizibilitate.